VIGO 0.5.2Open-source transit routing you can explain

Build a network. Answer a transport question.

VIGO 0.5.2 turns GTFS timetables and OpenStreetMap streets into a reusable City, then answers three questions about it: how to make a journey, how long every trip takes, and how far people can get. It runs on your own machine, explains each answer, and never needs an internet connection to route.

  • OfflineNo network access at query time
  • One CityBuilt once, opened by every runtime
  • v1 schemasStable public Results
  • Apache-2.0Open source
How VIGO answers a questionGTFS timetables and OpenStreetMap streets are built once into a City. An optional Scenario changes service for a query. Route, Matrix and Reach queries each return a Result.GTFStimetablesOpenStreetMapstreetsCityprepared onceScenariooptionalRouteMatrixReachResultstatus + evidence
Build a City once, then ask it many questions.

Start here

Three questions, one City

QueryIt answersRead more
RouteHow do I travel between these places, and what happens on the way?Route
MatrixHow long does each origin–destination pair take?Matrix
ReachWhere can I get within 15, 30, or 45 minutes?Reach

A Scenario changes the service one query sees, such as a new line or a removed route, so you can measure a proposal against today's network. Compare sets two saved Results side by side without routing again.

Choose your interface

InterfaceBest forWhat it needs
Engine (vigo)Queries, resident streams, and the HTTP APIOne native executable; no Node, Python, or network access
Compiler (vigo.mjs)Building Cities and scenario collections; it can also query themNode.js 24.18 or newer and its bundled native kernel
StudioInspecting service, planning journeys, and exploring Reach and scenariosThe desktop application and its own project library
Python (import vigo)Studies, batches, notebooks, and journey tablesA platform wheel with a headless engine

The engine, the compiler, and Python open the same City directories. For the same City and request, the engine and the compiler return the same public JSON Result.

Built to be explained

Every answer carries its evidence. A Route Result says whether each walk follows mapped streets or a schematic station link. A Matrix keeps unreachable pairs null, never zero. A Reach surface records its grid so that two runs can be compared cell by cell. Known limits state plainly what the model does not establish.

  • Stable data. Cities built with VIGO 0.5 stay readable by later releases without rebuilding. See the prepared-data contract.
  • Stable results. The public vigo.route.v1, vigo.matrix.v1, and vigo.reach.v1 schemas only gain optional fields. See Read a Result.
  • Offline by default. Queries never fetch anything. This guide works offline too: press / to search, and open saved Results in the Result viewer.

What's new in 0.5.2

Route can return several journeys at once with alternatives. The engine and the compiler now return the same Result for the same request, including fares and walking connections. Studio saves journeys and comparisons as JSON, GeoJSON, CSV, or Markdown. Read the release notes and the changelog.